// 认证相关时间配置
export const AUTH_CONFIG = {
  // Token有效期配置
  TOKEN_EXPIRY: {
    // 默认有效期：2小时（单位：毫秒）
    DEFAULT_DURATION: 2 * 60 * 60 * 1000, // 2小时
    // DEFAULT_DURATION: 1 * 60 * 60 * 1000, // 1小时
    // DEFAULT_DURATION: 30 * 60 * 1000, // 30分钟
    // DEFAULT_DURATION: 5 * 60 * 1000, // 5分钟
    // DEFAULT_DURATION: 1 * 60 * 1000, // 1分钟
    // DEFAULT_DURATION: 20 * 1000, // 20秒
    
    // 可选的有效期预设
    PRESETS: {
      SHORT: 30 * 60 * 1000,      // 30分钟
      MEDIUM: 1 * 60 * 60 * 1000, // 1小时
      LONG: 2 * 60 * 60 * 1000,   // 2小时
      EXTENDED: 4 * 60 * 60 * 1000, // 4小时
      FULL_DAY: 8 * 60 * 60 * 1000  // 8小时
    }
  },

  // 状态警告时间阈值（单位：秒）
  WARNING_THRESHOLDS: {
    // 即将过期警告（红色）
    CRITICAL: 5 * 60,    // 5分钟
    // 需要注意警告（黄色）
    WARNING: 15 * 60,    // 15分钟
    // 正常提醒（橙色）
    ATTENTION: 30 * 60   // 30分钟
  },

  // 自动刷新间隔（单位：毫秒）
  REFRESH_INTERVAL: 1000, // 1秒

  // 过期后的行为配置
  EXPIRY_BEHAVIOR: {
    // 是否自动跳转到登录页
    AUTO_REDIRECT: true,
    // 跳转的登录页路径
    LOGIN_PATH: '/login',
    // 是否显示过期提示
    SHOW_EXPIRY_MESSAGE: true,
    // 过期提示消息
    EXPIRY_MESSAGE: '登录已过期，请重新登录'
  }
}

// 获取当前使用的Token有效期
export const getTokenExpiry = () => {
  // 可以从环境变量或用户设置中读取
  return AUTH_CONFIG.TOKEN_EXPIRY.DEFAULT_DURATION
}

// 获取状态警告阈值
export const getWarningThresholds = () => {
  return AUTH_CONFIG.WARNING_THRESHOLDS
}

// 时间格式化工具函数
export const formatTime = {
  // 格式化倒计时显示
  countdown(totalSeconds: number): string {
    if (totalSeconds <= 0) {
      return '已过期'
    }
    
    const hours = Math.floor(totalSeconds / 3600)
    const minutes = Math.floor((totalSeconds % 3600) / 60)
    const seconds = totalSeconds % 60
    
    if (hours > 0) {
      return `${hours}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`
    } else {
      return `${minutes}:${seconds.toString().padStart(2, '0')}`
    }
  },

  // 格式化详细时间描述
  detail(totalSeconds: number): string {
    if (totalSeconds <= 0) {
      return '已过期'
    }
    
    const hours = Math.floor(totalSeconds / 3600)
    const minutes = Math.floor((totalSeconds % 3600) / 60)
    const seconds = totalSeconds % 60
    
    if (hours > 0) {
      return `${hours}小时${minutes}分钟${seconds}秒`
    } else if (minutes > 0) {
      return `${minutes}分钟${seconds}秒`
    } else {
      return `${seconds}秒`
    }
  }
} 